<?php

namespace App\Http\Controllers\home;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use DB;
class UserDedailsController extends Controller
{

    /**
     * 文件上传方法
     *
     * @return    string      $temp_name     随机文件名
     */
    public function picInfo(Request $request)
    {
        if($request -> hasFile('user_pic')){
            // 获取文件后缀名
            $hz = $request -> file('user_pic') -> getClientOriginalExtension();
            // 随机后缀名,并拼接文件后缀名
            $temp_name = md5(time().rand(100000,999999)).'.'.$hz;
            // 将文件上传至指定位置
            $request -> file('user_pic') -> move('./images/admin/user_pic',$temp_name);
            
        }
        return $temp_name;

    }


    /**
     * 用户个人信息
     * 
     * @param      array        $data       获取用户表与详情表内容
     * @return     返回修改模板
     */
    public function getIndex()
    {
        $data = DB::table('users') 
        -> join('user_details','users.id','=','user_details.user_id')
        -> where('id',1278) 
        -> select()
        -> first();
        return view('home/user_details/list',['title'=>'个人资料','data'=>$data]);

    }

    public function postDoedit(Request $request)
    {   
        $data = $request -> except(['_token','id']);
        $id = $request -> input('id');
        if($request -> hasFile('user_pic')){
            $temp_name = $this->picInfo($request);
        }else{
            $temp_name = DB::table('users') -> where('id',$id) -> value('user_pic');
        }
        $data['user_pic'] = $temp_name;
        $res = DB::table('users') 
        -> join('user_details','users.id','=','user_details.user_id')
        -> where('id',1278) 
        -> update($data);

        if($res){
            return redirect('/home/user_details/index');
        }else{
            return back();
        }
    }
    /**
     * 修改头像
     * 
     * @param      string        $temp_name            获取文件名称
     * @param      bool          $res                  执行数据库头像修改
     * @return     返回图片路径
     */
    public function postDopic(Request $request)
    {


        if($request -> hasFile('user_pic')){
            $temp_name = $this->picInfo($request);
        }else{
            $temp_name = DB::table('users') -> where('id',1278) -> value('user_pic');
        }

        // 通过路径获取头像
        $src = imagecreatefromstring(file_get_contents('./images/admin/user_pic/'.$temp_name));
        // 获取上传需要裁剪的json属性
        $file = $request -> input('avatar_data');
        // 将json属性转为数组模式
        $arrPic = json_decode($file,true);
        // 创建一个画布
        $creImg = imagecreatetruecolor($arrPic['width'],$arrPic['height']);
        // 裁剪 到画布中
        $newImg = imagecopyresampled($creImg,$src,0,0,$arrPic['x'],$arrPic['y'],$arrPic['width'],$arrPic['height'],$arrPic['width'],$arrPic['height']);
        // 将裁剪后的文件保存到目录中
        imagejpeg($creImg,'./images/admin/user_pic/'.$temp_name);
        $res = DB::table('users') -> where('id',1278) -> update(['user_pic'=>$temp_name]);
        if($res){
            return json_encode(['result'=>'/images/admin/user_pic/'.$temp_name]);
        }
    }
}
